home *** CD-ROM | disk | FTP | other *** search
Wrap
lllliiiibbbbppppbbbbmmmm((((3333)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV lllliiiibbbbppppbbbbmmmm((((3333)))) NNNNAAAAMMMMEEEE libpbm - functions to support portable bitmap programs SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS #include <pbm.h> cc ... libpbm.a DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ---- PPPPAAAACCCCKKKKAAAAGGGGEEEE----WWWWIIIIDDDDEEEE RRRROOOOUUUUTTTTIIIINNNNEEEESSSS KKKKEEEEYYYYWWWWOOOORRRRDDDD MMMMAAAATTTTCCCCHHHHIIIINNNNGGGG int pm_keymatch( char* str, char* keyword, int minchars ) Does a case-insensitive match of ssssttttrrrr against kkkkeeeeyyyywwwwoooorrrrdddd. ssssttttrrrr can be a leading sunstring of kkkkeeeeyyyywwwwoooorrrrdddd, but at least mmmmiiiinnnncccchhhhaaaarrrrssss must be present. LLLLOOOOGGGG BBBBAAAASSSSEEEE TTTTWWWWOOOO int pm_maxvaltobits( int maxval ) int pm_bitstomaxval( int bits ) Convert between a maxval and the minimum number of bits required to hold it. MMMMEEEESSSSSSSSAAAAGGGGEEEESSSS AAAANNNNDDDD EEEERRRRRRRROOOORRRRSSSS void pm_message( char* fmt, ... ) pppprrrriiiinnnnttttffff(((()))) style routine to write an informational message. void pm_error( char* fmt, ... ) pppprrrriiiinnnnttttffff(((()))) style routine to write an error message and abort. void pm_usage( char* usage ) Write a usage message. The string should indicate what arguments are to be provided to the program. GGGGEEEENNNNEEEERRRRIIIICCCC FFFFIIIILLLLEEEE MMMMAAAANNNNAAAAGGGGEEEEMMMMEEEENNNNTTTT FILE* pm_openr( char* name ) Open the given file for reading, with appropriate error checking. A filename of "-" is taken as equivalent to stdin. FILE* pm_openw( char* name ) Open the given file for writing, with appropriate error checking. void pm_close( FILE* fp ) Close the file descriptor, with appropriate error checking. Page 1 (printed 7/10/95) lllliiiibbbbppppbbbbmmmm((((3333)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV lllliiiibbbbppppbbbbmmmm((((3333)))) EEEENNNNDDDDIIIIAAAANNNN IIII////OOOO int pm_readbigshort( FILE* in, short* sP ) int pm_writebigshort( FILE* out, short s ) int pm_readbiglong( FILE* in, long* lP ) int pm_writebiglong( FILE* out, long l ) int pm_readlittleshort( FILE* in, short* sP ) int pm_writelittleshort( FILE* out, short s ) int pm_readlittlelong( FILE* in, long* lP ) int pm_writelittlelong( FILE* out, long l ) Routines to read and write short and long ints in either big- or little-endian byte order. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ---- PPPPBBBBMMMM----SSSSPPPPEEEECCCCIIIIFFFFIIIICCCC RRRROOOOUUUUTTTTIIIINNNNEEEESSSS TTTTYYYYPPPPEEEESSSS AAAANNNNDDDD CCCCOOOONNNNSSSSTTTTAAAANNNNTTTTSSSS typedef ... bit; #define PBM_WHITE ... #define PBM_BLACK ... each bbbbiiiitttt should contain only the values of PPPPBBBBMMMM____WWWWHHHHIIIITTTTEEEE or PPPPBBBBMMMM____BBBBLLLLAAAACCCCKKKK. #define PBM_FORMAT ... #define RPBM_FORMAT ... #define PBM_TYPE PBM_FORMAT #define PBM_FORMAT_TYPE(f) ... For distinguishing different file formats and types. IIIINNNNIIIITTTTIIIIAAAALLLLIIIIZZZZAAAATTTTIIIIOOOONNNN void pbm_init( int* argcP, char* argv[] ) All PBM programs must call this routine. MMMMEEEEMMMMOOOORRRRYYYY MMMMAAAANNNNAAAAGGGGEEEEMMMMEEEENNNNTTTT bit** pbm_allocarray( int cols, int rows ) Allocate an array of bits. bit* pbm_allocrow( int cols ) Allocate a row of the given number of bits. void pbm_freearray( bit** bits, int rows ) Free the array allocated with ppppbbbbmmmm____aaaallllllllooooccccaaaarrrrrrrraaaayyyy(((()))) containing the given number of rows. void pbm_freerow( bit* bitrow ) Free a row of bits. Page 2 (printed 7/10/95) lllliiiibbbbppppbbbbmmmm((((3333)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV lllliiiibbbbppppbbbbmmmm((((3333)))) RRRREEEEAAAADDDDIIIINNNNGGGG FFFFIIIILLLLEEEESSSS void pbm_readpbminit( FILE* fp, int* colsP, int* rowsP, int* formatP ) Read the header from a PBM file, filling in the rows, cols and format variables. void pbm_readpbmrow( FILE* fp, bit* bitrow, int cols, int format ) Read a row of bits into the bitrow array. Format and cols were filled in by ppppbbbbmmmm____rrrreeeeaaaaddddppppbbbbmmmmiiiinnnniiiitttt(((()))). bit** pbm_readpbm( FILE* fp, int* colsP, int* rowsP ) Read an entire bitmap file into memory, returning the allocated array and filling in the rows and cols variables. This function combines ppppbbbbmmmm____rrrreeeeaaaaddddppppbbbbmmmmiiiinnnniiiitttt(((()))), ppppbbbbmmmm____aaaallllllllooooccccaaaarrrrrrrraaaayyyy(((()))) and ppppbbbbmmmm____rrrreeeeaaaaddddppppbbbbmmmmrrrroooowwww(((()))). WWWWRRRRIIIITTTTIIIINNNNGGGG FFFFIIIILLLLEEEESSSS void pbm_writepbminit( FILE* fp, int cols, int rows, int forceplain ) Write the header for a portable bitmap file. The forceplain flag forces a plain-format file to be written, as opposed to a raw-format one. void pbm_writepbmrow( FILE* fp, bit* bitrow, int cols, int forceplain ) Write a row from a portable bitmap. void pbm_writepbm( FILE* fp, bit** bits, int cols, int rows, int forceplain ) Write the header and all data for a portable bitmap. This function combines ppppbbbbmmmm____wwwwrrrriiiitttteeeeppppbbbbmmmmiiiinnnniiiitttt(((()))) and ppppbbbbmmmm____wwwwrrrriiiitttteeeeppppbbbbmmmmrrrroooowwww(((()))). SSSSEEEEEEEE AAAALLLLSSSSOOOO libpgm(3), libppm(3), libpnm(3) AAAAUUUUTTTTHHHHOOOORRRR Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer. Page 3 (printed 7/10/95)